﻿using System.Text;

namespace CST_276_Lab_3
{
    public abstract class Desk
    {

        #region Properties
        public string Name { get; set; }
        public IMonitorStand MonitorStand { get; set; }
        public IBracket Bracket { get; set; }
        public IKeyboardTray KeyboardTray { get; set; }
        public IMouseTray MouseTray { get; set; }
        public IElevator Elevator { get; set; }
        public IDrawers Drawers { get; set; }
        public IShelves Shelves { get; set; }
        #endregion

        #region Methods

        public virtual string Prepare() { return null; }

        // I think this method may be unnecessary
        public string Assemble()
        {
            return null;
        }

        public override string ToString()
        {
            var sb = new StringBuilder();
            sb.Append(Name + "...\n");
            sb.Append(MonitorStand.GetDescription() + "\n");
            sb.Append(Bracket.GetDescription() + "\n");
            sb.Append(KeyboardTray.GetDescription() + "\n");
            sb.Append(MouseTray.GetDescription() + "\n");
            sb.Append(Elevator.GetDescription() + "\n");
            sb.Append(Drawers.GetDescription() + "\n");
            sb.Append(Shelves.GetDescription() + "\n");

            return sb.ToString();
        }

        #endregion

    }
}